package cn.edu.lcu.cs.javaprogramming.basic.array;

import java.util.Arrays;
import java.util.Random;

/**
 * 成绩数组演示
 * 2022/2/26 23:38
 *
 * @Author ling
 */
public class ScoresArray {

    public static void main(String[] args) {
        // 声明字符串数组并赋值，存储3、4班的班级名称
        // 数组元素数量有限，且初值已知，可以用此种方式直接赋值
        String[] classes = {"2020级3班", "2020级4班"};
        // 遍历打印数组元素的值
        for (String clazz : classes) {
            System.out.println(clazz);
        }

        // 获取随机生成的成绩数组
        int[] scores = generateScores(84);
        // 输出打印
        // 使用Arrays工具类，将数组转换成字符串
        System.out.println(Arrays.toString(scores));

        // 将成绩递增排序，并打印
        Arrays.sort(scores);
        System.out.println(Arrays.toString(scores));

    }

    /**
     * 随机生成若干个[0, 100]之间的整数，作为成绩，存储在数组中返回。
     *
     * @param length 数组长度
     * @return 成绩数组
     */
    public static int[] generateScores(int length) {
        // 创建length个元素的整数数组
        // 这些元素都是默认值0
        int[] scores = new int[length];
        Random random = new Random();
        for (int i = 0; i < scores.length; i++) {
            scores[i] = random.nextInt(101);
        }

        return scores;
    }

    /**
     * 打印数组
     *
     * @param array
     */
    public static void print(int[] array) {
        for (int i : array) {
            System.out.printf("%d\t", i);
        }
    }
}
